#!/bin/bash

# 检查ROS环境
source /opt/ros/${ROS_DISTRO}/setup.bash

# 发布测试消息
# 定义清理函数，用于停止后台的rostopic进程
cleanup() {
    echo "Stopping rostopic pub..."
    if [ -n "$CHILD_PID" ]; then
        kill $CHILD_PID
    fi
    exit
}

# 设置trap，在脚本退出、被中断或终止时调用cleanup函数
trap cleanup EXIT INT TERM

# 使用-r 2以2Hz的频率发布消息（等同于sleep 0.5s），并在后台运行
rostopic pub -r 2 /test_topic std_msgs/String "data: 'Service Launcer Test - Bash'" &

# 获取后台进程的PID
CHILD_PID=$!

# 等待子进程结束，这会使脚本保持运行状态，直到子进程被终止
wait "$CHILD_PID"